Communication networks whose components communicate with one another on a packet-switched basis are replacing circuit-switching communication networks to an increasing extent. Such networks are frequently also referred to as Voice over IP (VoIP for short) networks when the Internet protocol (IP) is used for interchanging the audio information provided in the form of data. In this case, the networks may either be used exclusively for transmitting voice data or else for transmitting a mixture of voice data and other information.
The interconnected devices arranged in communication networks are referred to generally as communication components. When a communication component of this type is used as a terminal, for example as a telephone or a multimedia terminal, this component is also referred to as a client component. Other components are not used as a terminal, but rather provide services in the communication network. The services may be a gateway functionality, a voicemail server, an address directory or the like, for example. Such communication components are also referred to as server components.
Both the client components and the server components normally comprise a piece of computer hardware (for example a PC) which uses appropriate hardware extensions and a piece of adapted software to perform appropriate functionalities and provide services. In this case, the performance of a communication component is frequently dependent on the presence and release of the installed software, which means that by updating a piece of software which has already been installed or by freshly installing a piece of software which has not been present to date, it is possible to increase the performance of a communication component significantly.
A piece of computer hardware may also have more than one software application installed on it, which means that a single physical component in the network may in principle exercise both client and server functionalities. Such communication components are also referred to as servents in the literature, an artificial word derived from the terms “client” and “server”.
The communication components connect to one another by interchanging addressed data packets with one another. In this case, each communication component in the packet-switching communication network has a network address which is uniquely associated with it. In the networks which interchange data on the basis of the Internet protocol (IP networks), this is the IP address and the IP port number, for example. If a communication component is intended to connect to or interchange data with another communication component, then it is first necessary to find out the network address of the other component. The network addresses are not always permanently associated with the communication components over time, but rather may also be allocated dynamically in the network, which means that communication components may each have a different address whenever they have been turned off and turned on again or after predetermined events. For this reason, at least one network component in the known packet-switching communication networks is equipped with an address directory (address database) for all of the communication components which are available in this network. These server components are normally referred to as gatekeepers.
Alternatively, data interchange without a central address database in the manner of a gatekeeper is known, for example using the “The Gnutella Protocol Specification V 0.4” method, which communication components on the Internet can automatically use to find other communication components for file interchange. In this case, the file and hence data interchange thus takes place not using a central server component or a “gatekeeper”, but rather directly between the individual components. Networks which provide direct data interchange between communication components without a superordinate entity are called peer-to-peer networks. The communication components which comprise both “client” and “server” functionalities are the aforementioned “servents”.
In the peer-to-peer network based on the Gnutella specification, each communication component (for example a PC) holds files ready for interchange with other communication components. In order to be able to interchange data, the searching communication component requires the network address of the communication component which holds the sought file ready for retrieval. To this end, it first of all sends a first search message, the “ping”. Communication components which receive a “ping” search message respond to the searching communication component using a hit response, the “pong”. This hit response contains the respective network address of the responding communication component and the number of files which this communication component provides for interchange.
In the next step, the searching communication component sends a second search message “Query” to a limited selection of those communication components which have responded to the “ping” search message with a “pong”. The second search message already contains the file name of the file which is being sought. If a communication component receives a second search message “Query” but does not itself hold the sought file ready for interchange, then it forwards this search message to other communication components in the network whose addresses it has ascertained, for example by means of a “ping” method which has already been carried out in the past. If the communication component can provide the desired file for interchange, however, then it responds to the second search message “Query” with a hit response “Query Hit”, as a result of which the searching communication component can initiate the file transfer using commands defined in the Internet protocol.
The Gnutella method is used when a particular file is being sought among other communication components. The search method is terminated at the very instant at which the sought file has been found for the first time.
While the correct file need only be found once when searching on the basis of the Gnutella method, it is frequently important in the case of the services in communication networks to gain access to a plurality of communication components—providing services of the same type—in order to be able to choose between them when required.
A further drawback of the known method is that although useful data can be interchanged between communication components there is no guarantee that the software used on the communication components is sufficient for processing the useful data or is sufficiently up-to-date.
In addition, the known method does not allow the software installed on a communication component to be modified.